var publicidad = (function($, BASE_URL){
    var contador = BASE_URL+'php/controllers/contador.controller.php',
    publicidades = {
        small: {
            id:4,
            ancho:300,
            alto:40,
            data:[]
        },
        medium: {
            id:2,
            ancho:309,
            alto: 270,
            data:[]
        },
        mediumDoble: {
            id:3,
            ancho:309,
            alto: 540,
            data:[]
        },
        large: {
            id:1,
            ancho: 608,
            alto: 100,
            data:[]
        }
    }
    function getPublicidades (tipo, cantidad, categoria, publicacion, onSuccess) {
        var info = {id:publicidades[tipo].id, cantidad: cantidad}
        if (categoria) info['categoria'] = categoria ;
        if (publicacion) info['publicacion'] = publicacion ;
        $.ajax({
            url: BASE_URL+'php/providers/publicidad.provider.php',
            type: 'post',
            data: info,
            success: function (data) {
                publicidades[tipo].data = data;
                onSuccess();
            }
        })
    }
    function show (tipo) {
        if (publicidades[tipo].data.length) {
            var p = publicidades[tipo].data.pop();
            if (p.src.indexOf('.swf') == -1) {
                $banner = $('<img src="content/publicidad/'+p.src+'"  />');
                $banner.bind('click', function () {
                    window.open(contador+'?url='+encodeURIComponent(p.url)+'&id='+p.id);
                })
            } else {
                $banner = $('<embed width="'+publicidades[tipo].ancho+'" height="'+publicidades[tipo].alto+'" wmode="transparent" FlashVars="clickTag='+contador+'?url='+encodeURIComponent(p.url)+'%26id='+p.id+'" src="content/publicidad/'+p.src+'" />');
            }
            addImpresion(p.id);
            return $banner;
        }
    }
    
    function addImpresion (id) {
        $.ajax({
            url: BASE_URL+'php/controllers/addImpresion.controller.php',
            type: 'post',
            data: {id:id}
        })
    }

    return {
        getSmalls: function(cantidad, categoria, publicacion, onSuccess){
            getPublicidades('small', cantidad, categoria, publicacion, onSuccess);
        },
        getMediums: function(cantidad, categoria, publicacion, onSuccess){
            getPublicidades('medium', cantidad, categoria, publicacion, onSuccess);
        },
        getMediumsDoble: function(cantidad, categoria, publicacion, onSuccess){
            getPublicidades('mediumDoble', cantidad, categoria, publicacion, onSuccess);
        },
        getLarges: function(cantidad, categoria, publicacion, onSuccess){
            getPublicidades('large', cantidad, categoria, publicacion, onSuccess);
        },
        showSmall: function () {
            return show('small');
        },
        showMedium: function () {
            return show('medium');
        },
        showMediumDoble: function () {
            return show('mediumDoble');
        },
        showLarge: function () {
            return show('large');
        }
    };
})(jQuery, BASE_URL);